<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        
    </style>
</head>
<body>
    
</body>
<script>
    // 功能
    // 参数
    // 返回值
    // 是否改变原数组：ES5新增的数组的方法都没有改变原数组

    // - arr.indexOf()
    // 查找指定数据的索引
    // 参数：
        // 参数1：要查找的数据
        // 参数2：开始查找的位置，可选，默认从第0位查找
    // 查找到的数据的索引，没找到为-1
    // var arr = [2,3,4,5,4,3,2,3,4,4,6,7,8];
    // console.log(arr);
    // var res = arr.indexOf(3);
    // var res = arr.indexOf(3, 8);
    // console.log(res);

    // - arr.forEach()
    // 遍历数组
    // 参数：回调函数。这个回调函数又接收三个形参
                            // 形参1：数组的数据
                            // 形参2：数组的索引
                            // 形参3：数组自身
    // 没有返回值
    // var arr = ["hello","world","你好","hahaha", "heiehiehei"];
    // console.log(arr);
    // var res = arr.forEach(function(val, idx, self){
    //     console.log(val);
    // });
    // console.log(res);

    // - arr.map()
    // 遍历数组 并 操作数组数据产生新数组
    // 参数：回调函数。这个回调函数又接收三个形参
                            // 形参1：数组的数据
                            // 形参2：数组的索引
                            // 形参3：数组自身
    // 一个新数组，新数组内是回调函数每次执行时的返回值
    // var arr = [5,6,7,8,9];
    // console.log(arr);
    // var res = arr.map(function(val, idx, self){
    //     console.log(val, idx, self===arr);
    //     return val * 1.3;
    // });
    // console.log(res);

    // - arr.filter()
    // 遍历数组 并 过滤数组中符合条件的数据
    // 参数：回调函数。这个回调函数又接收三个形参
                            // 形参1：数组的数据
                            // 形参2：数组的索引
                            // 形参3：数组自身
    // 一个新数组，新数组内是回调函数返回true时，遍历到的数组的数据
    // var arr = [5,6,7,8,9];
    // console.log(arr);
    // var res = arr.filter(function(val, idx, self){
    //     console.log(val, idx, self===arr);
    //     return val>6;
    // });
    // console.log(res);

    // - arr.some()
    // 遍历 并 查找数组中的数据只要有一个符合条件，就是true
    // 参数：回调函数。这个回调函数又接收三个形参
                            // 形参1：数组的数据
                            // 形参2：数组的索引
                            // 形参3：数组自身
    // 布尔值
        // 如果回调函数每次的返回值都是false，some的返回值就是false
        // 如果回调函数有一次的返回值是true，some的返回值就是true，同时停止继续遍历
    // var arr = [5,6,7,8,9];
    // console.log(arr);
    // var res = arr.some(function(val, idx, self){
    //     console.log(val, idx, self===arr);
    //     return val === 7;
    // });
    // console.log(res);
    
    // - arr.every()
    // 遍历 并 查找数组中的数据是否全部符合条件，全部符合才是true，只要有一个不符合就是false
    // 参数：回调函数。这个回调函数又接收三个形参
                            // 形参1：数组的数据
                            // 形参2：数组的索引
                            // 形参3：数组自身
    // 布尔值
        // 如果回调函数每次的返回值都是true，every的返回值就是true
        // 如果回调函数有一次的返回值是false，every的返回值就是false，同时停止继续遍历
    // var arr = [5,6,7,8,9];
    // console.log(arr);
    // var res = arr.every(function(val, idx, self){
    //     console.log(val, idx, self===arr);
    //     return val !== 7;
    // });
    // console.log(res);
    

</script>
</html>